home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
021-030
/
amok30
/
m2maker
/
defmaker.projekt
/
txt
/
moduletool.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
10KB
|
246 lines
(**********************************************************************
:Program. ModuleTool
:Contents. Erzeugt Def-Module aus Imps
:Author. Thomas Stolze
:Copyright. ShareWare
:Language. Modula-2
:Translator. M2Amiga AMSoft V3.2
:Imports. DirectorySupport
:Imports. IntuitionSupport
:History. V1.0 Thomas Stolze 22-Oct-89
**********************************************************************)
(******************************************************************************
* *
* Programmname: ModuleTool *
* *
* Stand: 22.10.89 Uhrzeit: 21:05:01 *
* *
* Bearbeitet mit dem MODULETool V1.0 (©) by Thomas Stolze 1989 *
* *
******************************************************************************)
(* $R- *) (* $V- *) (* $S- *) (* $N- *) (* $F- *)
MODULE ModuleTool;
FROM SYSTEM IMPORT ADDRESS,ADR;
FROM Arts IMPORT Assert,Terminate,TermProcedure;
FROM Arguments IMPORT GetArg,NumArgs;
FROM Intuition IMPORT ActivateGadget,ActivationFlags,ActivationFlagSet,
AddGadget,boolGadget,Border,BorderPtr,CloseWindow,
Gadget,GadgetFlags,GadgetFlagSet,GadgetPtr,
IDCMPFlags,IDCMPFlagSet,IntuiMessagePtr,IntuiText,
IntuiTextPtr,Menu,MenuItem,MenuItemFlags,
MenuItemFlagSet,MenuPtr,NewWindow,OpenWindow,
RefreshGadgets,ScreenFlags,ScreenFlagSet,
SetMenuStrip,strGadget,StringInfo,WindowFlags,
WindowFlagSet,WindowPtr;
FROM Exec IMPORT GetMsg,ReplyMsg,WaitPort;
FROM Graphics IMPORT jam1,jam2;
FROM DefMaker IMPORT InfoTabelle,MakeModule,PrintString;
FROM IntuitionSupport IMPORT SetBorder,SetBorderKoord,SetGadget,SetInfo,
SetIText,SetMenu,SetMenuItem,SetWindow;
FROM DirectorySupport IMPORT Block,Frame;
CONST fensterBreite = 640;
fensterHoehe = 78;
erstePixelReihe = 122;
programmName = "MODULETool V1.1";
VAR gadget : ARRAY [0..10] OF Gadget;
MenuItemFeld : ARRAY [0..3] OF MenuItem;
borderKoord : ARRAY [0..6],[0..9] OF INTEGER;
text : ARRAY [0..12] OF IntuiText;
border : ARRAY [0..6] OF Border;
programmname : ARRAY [0..1],[0..80] OF CHAR;
menustrip : Menu;
menustripPtr : MenuPtr;
gadgetptr : GadgetPtr;
strInfo : StringInfo;
window : WindowPtr;
IntuiMsg : IntuiMessagePtr;
class : IDCMPFlagSet;
adr : ADDRESS;
info : InfoTabelle;
len,numargs : INTEGER;
PROCEDURE InitDefMaker;
VAR newWind : NewWindow;
i,pos : INTEGER;
PROCEDURE InitGadgets;
VAR ptr : BorderPtr;
txt : IntuiTextPtr;
BEGIN
txt:=SetIText(text[3],ADR("aussortieren"),1,2,1,2,jam2);
txt:=SetIText(text[4],ADR(" DefMod"),1,2,5,2,jam2);
txt:=SetIText(text[5],ADR("Backup"),1,2,13,2,jam2);
txt:=SetIText(text[6],ADR("OK"),1,2,32,2,jam2);
txt:=SetIText(text[7],ADR("CANCEL"),1,2,16,2,jam2);
txt:=SetIText(text[8],ADR("Leerzeile"),1,2,1,2,jam2);
txt:=SetIText(text[9],ADR(" Speed"),1,2,1,2,jam2);
txt:=SetIText(text[10],ADR(" Kopf"),1,2,1,2,jam2);
txt:=SetIText(text[11],ADR(" Block"),1,2,5,2,jam2);
SetInfo(strInfo,ADR(programmname[0]),ADR(programmname[1]),0,64,0);
SetGadget(gadget[0],15,17,80,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[0]),ADR(text[9]),NIL,0);
SetGadget(gadget[1],105,17,80,11,GadgetFlagSet{selected},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[0]),ADR(text[10]),NIL,1);
SetGadget(gadget[2],195,17,80,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[0]),ADR(text[11]),NIL,2);
SetGadget(gadget[3],285,17,98,11,GadgetFlagSet{selected},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[2]),ADR(text[3]),NIL,3);
SetGadget(gadget[4],551,17,75,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[3]),ADR(text[4]),NIL,4);
SetGadget(gadget[5],477,17,64,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[4]),ADR(text[5]),NIL,5);
SetGadget(gadget[6],15,60,80,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify},
boolGadget,ADR(border[0]),ADR(text[6]),NIL,6);
SetGadget(gadget[7],548,60,80,11,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify},
boolGadget,ADR(border[0]),ADR(text[7]),NIL,7);
SetGadget(gadget[8],393,17,74,11,GadgetFlagSet{selected},
ActivationFlagSet{gadgImmediate,relVerify,toggleSelect},
boolGadget,ADR(border[5]),ADR(text[8]),NIL,8);
SetGadget(gadget[9],120,32,406,8,GadgetFlagSet{},
ActivationFlagSet{gadgImmediate,relVerify},
strGadget,ADR(border[6]),NIL,ADR(strInfo),9);
SetBorderKoord(borderKoord[0],gadget[0]);
SetBorderKoord(borderKoord[1],gadget[6]);
SetBorderKoord(borderKoord[2],gadget[3]);
SetBorderKoord(borderKoord[3],gadget[4]);
SetBorderKoord(borderKoord[4],gadget[5]);
SetBorderKoord(borderKoord[5],gadget[8]);
SetBorderKoord(borderKoord[6],gadget[9]);
ptr:=SetBorder(border[0],-1,-1,1,0,5,jam2,ADR(borderKoord[0]));
ptr:=SetBorder(border[1],-1,-1,1,0,5,jam2,ADR(borderKoord[1]));
ptr:=SetBorder(border[2],-1,-1,1,0,5,jam2,ADR(borderKoord[2]));
ptr:=SetBorder(border[3],-1,-1,1,0,5,jam2,ADR(borderKoord[3]));
ptr:=SetBorder(border[4],-1,-1,1,0,5,jam2,ADR(borderKoord[4]));
ptr:=SetBorder(border[5],-1,-1,1,0,5,jam2,ADR(borderKoord[5]));
ptr:=SetBorder(border[6],-1,-1,1,0,5,jam2,ADR(borderKoord[6]));
END InitGadgets;
PROCEDURE InitMenus;
VAR ptr : IntuiTextPtr;
BEGIN
ptr:=SetIText(text[0],ADR(" [& => AND]"),0,1,17,2,jam1);
ptr:=SetIText(text[1],ADR(" [~ => NOT]"),0,1,17,2,jam1);
ptr:=SetIText(text[2],ADR(" [# => <>]"),0,1,17,2,jam1);
menustripPtr:=SetMenu(menustrip, 28,0,84,0,ADR(" Projekt"));
menustripPtr^.firstItem:=SetMenuItem(MenuItemFeld[0],3,0,127,11,
MenuItemFlagSet{highComp,itemText,itemEnabled,menuToggle,
checkIt,checked},
ADR(text[0]),NIL,00C);
MenuItemFeld[0].nextItem:=SetMenuItem(MenuItemFeld[1],3,12,127,11,
MenuItemFlagSet{highComp,itemText,itemEnabled,menuToggle,
checkIt,checked},
ADR(text[1]),NIL,00C);
MenuItemFeld[1].nextItem:=SetMenuItem(MenuItemFeld[2],3,24,127,11,
MenuItemFlagSet{highComp,itemText,itemEnabled,menuToggle,
checkIt},
ADR(text[2]),NIL,00C);
END InitMenus;
BEGIN
InitMenus; InitGadgets;
SetWindow(newWind,0,erstePixelReihe,fensterBreite,fensterHoehe,0,1,
IDCMPFlagSet{closeWindow,gadgetUp},
WindowFlagSet{windowDrag,windowDepth,windowActive,activate,
windowClose,windowRefresh},
ADR(programmName),NIL,NIL,0,0,0,0,
ScreenFlagSet{wbenchScreen});
window:=OpenWindow(newWind);
Assert(window # NIL,ADR("Fenster nicht geöffnet"));
Assert(SetMenuStrip(window,menustripPtr) = TRUE,ADR("Menu Fehler"));
Block(window^.rPort,2,2,14,fensterBreite-2,fensterHoehe-2);
FOR i:=0 TO 9 DO
pos:=AddGadget(window,ADR(gadget[i]),-1);
END;
RefreshGadgets(window^.firstGadget,window,NIL);
Frame(window^.rPort,3,3,11,fensterBreite-3,fensterHoehe-2,2);
Frame(window^.rPort,3,120,43,526,fensterHoehe-7,2);
Block(window^.rPort,0,124,45,522,fensterHoehe-9);
END InitDefMaker;
PROCEDURE InitInfoTab(name : ARRAY OF CHAR);
BEGIN
IF (checked IN MenuItemFeld[0].flags) THEN info.And:=TRUE END;
IF (checked IN MenuItemFeld[1].flags) THEN info.Tilde:=TRUE END;
IF (checked IN MenuItemFeld[2].flags) THEN info.Doppelkreuz:=TRUE END;
IF (selected IN gadget[0].flags) THEN info.Speed:=TRUE END;
IF (selected IN gadget[1].flags) THEN info.Head:=TRUE END;
IF (selected IN gadget[2].flags) THEN info.Block:=TRUE END;
IF (selected IN gadget[3].flags) THEN info.aussortieren:=TRUE END;
IF (selected IN gadget[4].flags) THEN info.defMod:=TRUE END;
IF (selected IN gadget[5].flags) THEN info.backup:=TRUE END;
IF (selected IN gadget[8].flags) THEN info.eineLeerzeile:=TRUE END;
IF MakeModule(name,ADR(info),window) THEN
PrintString(ADR("Operation erfolgreich beendet"),window,130,59,TRUE);
ELSE
PrintString(ADR("Fehler !!!"),window,130,59,TRUE);
END;
END InitInfoTab;
PROCEDURE CleanDefMaker;
BEGIN
IF (window # NIL) THEN CloseWindow(window) END;
END CleanDefMaker;
PROCEDURE MakeDefinitionsModule(name : ARRAY OF CHAR);
VAR bool : BOOLEAN;
BEGIN
InitDefMaker;
IF (numargs = 0) THEN
PrintString(ADR("Bitte geben Sie einen Dateinamen ein:"),
window,130,59,TRUE);
bool:=ActivateGadget(ADR(gadget[10]),window,NIL);
ELSE
PrintString(ADR("Dateiname:"),window,130,49,TRUE);
END;
LOOP
WaitPort(window^.userPort);
IntuiMsg:=GetMsg(window^.userPort);
class:=IntuiMsg^.class;
gadgetptr:=IntuiMsg^.iAddress;
ReplyMsg(IntuiMsg);
IF (closeWindow IN class) THEN
EXIT
ELSIF (gadgetUp IN class) THEN
CASE gadgetptr^.gadgetID OF
6 : InitInfoTab(programmname[0]); EXIT;
| 7 : EXIT;
ELSE
END;
END;
END;
END MakeDefinitionsModule;
BEGIN
TermProcedure(CleanDefMaker);
numargs:=NumArgs();
GetArg(1,programmname[0],len);
MakeDefinitionsModule(programmname[0]);
Terminate(0);
END ModuleTool.